#include <string>
#include <vector>
#include <stdint.h>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

/**
 * @brief 加载图像
 * @param[in]  strPathLeft          保存左目图像文件名称的文件的路径
 * @param[in]  strPathRight         保存右目图像文件名称的文件的路径
 * @param[in]  strPathTimes         保存图像时间戳的文件的路径
 * @param[out] vstrImageLeft        左目图像序列中每张图像的文件名
 * @param[out] vstrImageRight       右目图像序列中每张图像的文件名
 * @param[out] vTimeStamps          图像序列中每张图像的时间戳(认为左目图像和右目图像的时间戳已经对齐)
 */
int32_t step_load_images(const string &strPathLeft, const string &strPathRight, const string &strPathTimes,
                vector<string> &vstrImageLeft, vector<string> &vstrImageRight, vector<double> &vTimeStamps);

int32_t step_read_configs(const string &strPathConfig, cv::Mat &M1l, cv::Mat &M2l, cv::Mat &M1r,cv::Mat &M2r);

int32_t step_calibrate_stereo_imgs(
    const cv::String &src_left_filename, const cv::String &src_right_filename, // 输入 原始左右图像的文件名
    const cv::InputArray src_left, const cv::InputArray src_right, // 输入 原始左右图像
    cv::OutputArray &dst_left, cv::OutputArray &dst_right,  // 输出 校正后的图像
    const cv::InputArray map1, const cv::InputArray map2, const int interpolation);
